/**
 * 装饰器可选基类
 * @version:$Id: Decorator.js 37 2008-03-02 17:24:56Z dsonet $
 */
/**
 * 装饰器基类
 * @public
 */
function Decorator(){}

var $p = Decorator.prototype;

$p.id = null;

/**
 * 父装饰器，该属性由装饰引擎注入
 * @public
 * @typeof object
 * @instanceof Decorator
 * @id Decorator.prototype.parent
 */
$p.parent = null;
/**
 * 子装饰器数组，该属性由装饰引擎注入
 * @public
 * @typeof object
 * @instanceof Array
 * @id Decorator.prototype.children
 */
$p.children = null;
/**
 * 获取装饰容器（html元素）,只是方便以后的编码，该方法不属于JSI装饰器规范的内容。
 * @protected
 * @return <HTMLElement> 装饰容器（html元素）
 */
$p.getContainer = function()
{
  return document.getElementById(this.id);
}
/**
 * 装饰前行为（可选），若存在，在开始装饰器时（首次遍历，子装饰器未知）被装饰引擎调用
 * @public
 * @typeof function
 * @id Decorator.prototype.before
 */
$p.before = null;
/**
 * 装饰行为（必须），全部子装饰器装饰完成后，被装饰引擎调用。
 * 结束装饰，一般在这里放置行为。
 * 这是装饰器的必备原型方法（装饰引擎通过判断是否存在这个属性方法来确定某构造器是否是装饰器）。
 * @public
 * @typeof function
 * @id Decorator.prototype.decorate
 */
$p.decorate = $JSI.$void;
/**
 * 清理函数（可选），默认为空，若存在，离开页面时自动执行清理操作。
 * @public
 * @typeof function
 * @id Decorator.prototype.dispose
 */

$p.dispose = $JSI.$void;

$p = null;